<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Requests;
require_once 'resources/org/code/Code.class.php';//laravel中没有现成的验证码类 需要外部调用
use Illuminate\Support\Facades\Input;//引入的Input类
use App\Http\Model\User;
use Illuminate\Support\Facades\Crypt;

class LoginController extends CommonController
{
    public function login(){
    	//使用Input类获取用户提交的信息,使用Input需要引入Input类
    	if($input = Input::all()){
    		//实例化验证码类
    		$code = new \Code();
    		//获取页面提交的验证码
    		$_code = $code->get();
    		//验证验证码是否正确 把用户输入的验证码全部转化为大写的
    		if(strtoupper($input['code']) != $_code){
    			//如果验证码错误返回上一步操作(登录操作),顺便输出错误信息
    			return back()->with('msg','验证码错误');
    		}
    		// $user = User::all();
    		//获取用户信息first
    		$user = User::first();
    		//验证登陆提交的用户名和数据库中的用户名 并且 提交的密码和数据库中解密后的密码是否相同 取反 
    		if($user->user_name != $input['user_name'] || Crypt::decrypt($user->user_pass) != $input['user_pass']){
    			return back()->with('msg','用户名或者密码错误');
    		}
    		//验证成功后的信息存到session中 后面页面使用
    		session(['user'=>$user]);
    		//验证信息正确跳转到后台首页
    		return redirect('admin');
    	}else{
    		//信息不正确显示登陆页面
    		return view('admin.login');
    	}
    }
    /**
     * 使用扩展的验证码类 创建验证码
     * @return [type] [description]
     */
    public function code(){
    	$code = new \Code();//实例化外部引入的验证码类
    	$code->make();//验证码类内部的创建验证码的方法
    }
    /**
     * 使用扩展的验证码类中的session获取验证码
     * 在验证码上加点击事件 点击换验证码 
     * 保证浏览器的兼容性后面加随机数 onclick="this.src='{{url("admin/code")}}?'+Math.random()
     * @return [type] [description]
     */
    /*public function getcode(){
    	$code = new \Code();//实例化外部引入的验证码类
    	echo $code->get();//使用session获取验证码 首先需要在入口文件中开启session
    }*/

    public function quit(){
    	session(['user'=>null]);
    	return redirect('admin/login');
    }
}
 